#pragma once
/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 * 
 * Named Instance Interface
 *		Provides the interface definition for classes which may be uniquely named.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
#include "stdafx.h"
using namespace System;

namespace Adaptive
{
	namespace Foundation
	{
		/// <summary>
		/// Provides the interface definition for classes which implement a 
		/// Clear() method.
		/// </summary>
		public interface class INamedInstance
		{
			/// <summary>
			/// Occurs when the name value is modified.
			/// </summary>
			event EventHandler^ NameChanged;

			/// <summary>
			/// Gets or sets a unique name value assigned to an object instance.
			/// </summary>
			/// <value>
			/// The unique name/identifier assigned to the instance.
			/// </value>
			property String^ Name { String^ get(); void set(String^ nameValue); }

			/// <summary>
			/// Raises the name changed event.
			/// </summary>
			void OnNameChanged(EventArgs^ e);
		};
	}
}
